﻿#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<vector>
#include<string>
#include<stack>

#include<set>
#include<algorithm>
using namespace std;
//int main()
//{
//	int apple = 0, peach = 0;
//	int a = 0, b = 0;
//	cin >> apple >> peach >> a >> b;
//
//	int ret = 0;
//	int app = apple / 2, pea = peach / 2;
//	int sum1 = 0, sum2 = 0;
//	if (peach > app)
//	{
//		sum1 = app * a;
//		if (apple % 2 && (peach - 2 * app >= 2)) sum1 += b;
//	}
//	else
//		sum1 = peach * a;
//
//	if (apple > pea)
//	{
//		sum2 = pea * b;
//		if (peach % 2 && (apple - 2 * pea >= 2)) sum1 += a;
//	}
//	else
//		sum1 = peach * b;
//	ret = sum1 > sum2?sum1:sum2;
//	cout << ret << endl;
//	return 0;
//}
//void My_reverse(string& s, int left, int right)
//{
//	while (left < right)
//	{
//		swap(s[left++], s[right--]);
//	}
//}
//int main()
//{
//	string s;
//	string tmp;
//	getline(cin, tmp);
//	int copy = tmp.find(".");
//	s = tmp.substr(0, copy+1);
//
//	reverse(s.begin(), s.end());
//	int left = 0, right = s.find(" ", left);
//	while (right != -1)
//	{
//		My_reverse(s,left, right-1);
//		left = right + 1;
//		right = s.find(" ", left);
//	}
//	My_reverse(s, left, s.size()-1);
//
//	cout << s << endl;
//	return 0;
//}
//class MinStack {
//public:
//    void push(int val) {
//        st.push(val);
//        if (minst.empty() || val <= minst.top()) minst.push(val);
//    }
//
//    void pop() {
//        if (st.top() == minst.top()) minst.pop();
//        st.pop();
//    }
//
//    int top() {
//        return st.top();
//    }
//
//    int getMin() {
//        return minst.top();
//    }
//    stack<int> st;
//    stack<int> minst;
//};

//class Solution {
//public:
//    bool IsPopOrder(vector<int>& pushV, vector<int>& popV) {
//        stack<int> tmp;
//        int left = 0, right = 0;
//        while (left < popV.size())
//        {
//            tmp.push(pushV[left++]);
//            while (!tmp.empty() && tmp.top() == popV[right])
//            {
//                tmp.pop();
//                right++;
//            }
//        }
//        if (tmp.empty()) return true;
//        else return false;
//    }
//};

//class Solution {
//public:
//    int evalRPN(vector<string>& tokens) {
//        set<string> tmp = { "+","-","*","/" };
//
//        stack<int> st;
//        int sum = 0;
//        for (auto& e : tokens)
//        {
//            if (tmp.find(e) != tmp.end())
//            {
//                int right = st.top();
//                st.pop();
//                int left = st.top();
//                st.pop();
//                switch (e[0])
//                {
//                case'+':sum = left + right;
//                    break;
//                case'-':sum = left - right;
//                    break;
//                case'*':sum = left * right;
//                    break;
//                case'/':sum = left / right;
//                    break;
//                }
//                st.push(sum);
//            }
//            else
//                st.push(stoi(e));
//        }
//        return st.top();
//    }
//};

//int main()
//{
//    vector<string> v = { "2","1","+","3","*" };
//    evalRPN(v);
//	return 0;
//}


